{
struct cpuinfo_x86 *c = &boot_cpu_data;
- if (!(xen_start_info->flags & SIF_PRIVILEGED))
+ if (!is_initial_xendomain())
return -ENODEV;
if ((!cpu_has(c, X86_FEATURE_MTRR)) &&
{
if(sis_apic_bug == -1)
sis_apic_bug = 0;
- if (xen_start_info->flags & SIF_INITDOMAIN) {
+ if (is_initial_xendomain()) {
dom0_op_t op = { .cmd = DOM0_PLATFORM_QUIRK };
op.u.platform_quirk.quirk_id = sis_apic_bug ?
QUIRK_IOAPIC_BAD_REGSEL : QUIRK_IOAPIC_GOOD_REGSEL;
int i;
/* Nothing to do if not running in dom0. */
- if (!(xen_start_info->flags & SIF_INITDOMAIN))
+ if (!is_initial_xendomain())
return;
/* video rom */
int i;
/* Nothing to do if not running in dom0. */
- if (!(xen_start_info->flags & SIF_INITDOMAIN)) {
+ if (!is_initial_xendomain()) {
legacy_init_iomem_resources(e820.map, e820.nr_map,
&code_resource, &data_resource);
return;
/* Force a quick death if the kernel panics (not domain 0). */
extern int panic_timeout;
- if (!panic_timeout && !(xen_start_info->flags & SIF_INITDOMAIN))
+ if (!panic_timeout && !is_initial_xendomain())
panic_timeout = 1;
/* Register a call for panic conditions. */
}
bootloader_type = LOADER_TYPE;
- if (xen_start_info->flags & SIF_INITDOMAIN) {
+ if (is_initial_xendomain()) {
/* This is drawn from a dump from vgacon:startup in
* standard Linux. */
screen_info.orig_video_mode = 3;
}
#endif
- if (xen_start_info->flags & SIF_INITDOMAIN)
+ if (is_initial_xendomain())
dmi_scan_machine();
#ifdef CONFIG_X86_GENERICARCH
#endif
#ifdef CONFIG_ACPI
- if (!(xen_start_info->flags & SIF_INITDOMAIN)) {
+ if (!is_initial_xendomain()) {
printk(KERN_INFO "ACPI in unprivileged domain disabled\n");
acpi_disabled = 1;
acpi_ht = 0;
register_memory();
- if (xen_start_info->flags & SIF_INITDOMAIN) {
- if (!(xen_start_info->flags & SIF_PRIVILEGED))
- panic("Xen granted us console access "
- "but not privileged status");
-
+ if (is_initial_xendomain()) {
#ifdef CONFIG_VT
#if defined(CONFIG_VGA_CONSOLE)
if (!efi_enabled ||
swiotlb = 1;
} else if ((swiotlb_force != -1) &&
is_running_on_xen() &&
- (xen_start_info->flags & SIF_INITDOMAIN)) {
+ is_initial_xendomain()) {
/* Domain 0 always has a swiotlb. */
ram_end = HYPERVISOR_memory_op(XENMEM_maximum_ram_page, NULL);
if (ram_end <= 0x7ffff)
sec = tv->tv_sec;
__normalize_time(&sec, &nsec);
- if ((xen_start_info->flags & SIF_INITDOMAIN) &&
- !independent_wallclock) {
+ if (is_initial_xendomain() && !independent_wallclock) {
op.cmd = DOM0_SETTIME;
op.u.settime.secs = sec;
op.u.settime.nsecs = nsec;
s64 nsec;
dom0_op_t op;
- if (!ntp_synced() || independent_wallclock ||
- !(xen_start_info->flags & SIF_INITDOMAIN))
+ if (!ntp_synced() || independent_wallclock || !is_initial_xendomain())
return;
write_seqlock_irq(&xtime_lock);
WARN_ON(irqs_disabled());
- if (independent_wallclock || !(xen_start_info->flags & SIF_INITDOMAIN))
+ if (independent_wallclock || !is_initial_xendomain())
return 0;
/* gets recalled with irq locally disabled */
/* Setup mapping of lower 1st MB */
for (i = 0; i < NR_FIX_ISAMAPS; i++)
- if (xen_start_info->flags & SIF_PRIVILEGED)
+ if (is_initial_xendomain())
set_fixmap(FIX_ISAMAP_BEGIN - i, i * PAGE_SIZE);
else
__set_fixmap(FIX_ISAMAP_BEGIN - i,
/*
* Don't remap the low PCI/ISA area, it's always mapped..
*/
- if (xen_start_info->flags & SIF_PRIVILEGED &&
+ if (is_initial_xendomain() &&
phys_addr >= ISA_START_ADDRESS && last_addr < ISA_END_ADDRESS)
return (void __iomem *) isa_bus_to_virt(phys_addr);
/*
* Don't remap the low PCI/ISA area, it's always mapped..
*/
- if (xen_start_info->flags & SIF_PRIVILEGED &&
+ if (is_initial_xendomain() &&
phys_addr >= ISA_START_ADDRESS && last_addr < ISA_END_ADDRESS)
return isa_bus_to_virt(phys_addr);
"flags=0x%x\n", s->arch.start_info_pfn,
xen_start_info->nr_pages, xen_start_info->flags);
- /* xen_start_info isn't setup yet, get the flags manually */
- if (xen_start_info->flags & SIF_INITDOMAIN) {
- if (!(xen_start_info->flags & SIF_PRIVILEGED))
- panic("Xen granted us console access "
- "but not privileged status");
- } else {
+ if (!is_initial_xendomain()) {
extern int console_use_vt;
conswitchp = NULL;
console_use_vt = 0;
// of a non-privileged domain,
if ((op == XENMEM_increase_reservation ||
op == XENMEM_populate_physmap) &&
- !(xen_start_info->flags & SIF_PRIVILEGED) &&
+ !is_initial_xendomain() &&
reservation.extent_order > 0)
return ret;
}
kernel_end = 0; /* dummy */
screen_info = SCREEN_INFO;
- if (xen_start_info->flags & SIF_INITDOMAIN) {
+ if (is_initial_xendomain()) {
/* This is drawn from a dump from vgacon:startup in
* standard Linux. */
screen_info.orig_video_mode = 3;
}
- if ( ! (xen_start_info->flags & SIF_INITDOMAIN))
- {
+ if (!is_initial_xendomain()) {
acpi_disabled = 1;
#ifdef CONFIG_ACPI
acpi_ht = 0;
*/
#if defined(CONFIG_XEN_PRIVILEGED_GUEST)
probe_roms();
- if (xen_start_info->flags & SIF_INITDOMAIN) {
+ if (is_initial_xendomain()) {
machine_e820 = alloc_bootmem_low_pages(PAGE_SIZE);
memmap.nr_entries = E820MAX;
BUG_ON(HYPERVISOR_memory_op(XENMEM_machine_memory_map, &memmap));
e820_reserve_resources(machine_e820, memmap.nr_entries);
- } else if (!(xen_start_info->flags & SIF_INITDOMAIN))
+ } else
e820_reserve_resources(e820.map, e820.nr_map);
#elif defined(CONFIG_XEN)
e820_reserve_resources(e820.map, e820.nr_map);
}
#if defined(CONFIG_XEN_PRIVILEGED_GUEST)
- if (xen_start_info->flags & SIF_INITDOMAIN) {
+ if (is_initial_xendomain()) {
e820_setup_gap(machine_e820, memmap.nr_entries);
free_bootmem(__pa(machine_e820), PAGE_SIZE);
}
set_iopl.iopl = 1;
HYPERVISOR_physdev_op(PHYSDEVOP_set_iopl, &set_iopl);
- if (xen_start_info->flags & SIF_INITDOMAIN) {
- if (!(xen_start_info->flags & SIF_PRIVILEGED))
- panic("Xen granted us console access "
- "but not privileged status");
-
+ if (is_initial_xendomain()) {
#ifdef CONFIG_VT
#if defined(CONFIG_VGA_CONSOLE)
conswitchp = &vga_con;
/* Setup mapping of lower 1st MB */
for (i = 0; i < NR_FIX_ISAMAPS; i++)
- if (xen_start_info->flags & SIF_PRIVILEGED)
+ if (is_initial_xendomain())
set_fixmap(FIX_ISAMAP_BEGIN - i, i * PAGE_SIZE);
else
__set_fixmap(FIX_ISAMAP_BEGIN - i,
long rc = 0;
struct tpm_private *tp;
- if ((xen_start_info->flags & SIF_INITDOMAIN)) {
+ if (is_initial_xendomain())
return -EPERM;
- }
tp = tpm_private_get();
if (!tp) {
if (!is_running_on_xen())
return __RETCODE;
- if (xen_start_info->flags & SIF_INITDOMAIN) {
+ if (is_initial_xendomain()) {
if (xc_mode == XC_DEFAULT)
xc_mode = XC_SERIAL;
kcons_info.write = kcons_write_dom0;
int sz;
/* Emergency console is synchronous, so there's nothing to flush. */
- if (xen_start_info->flags & SIF_INITDOMAIN)
+ if (is_initial_xendomain())
return;
/* Spin until console data is flushed through to the daemon. */
int sent, sz, work_done = 0;
if (x_char) {
- if (xen_start_info->flags & SIF_INITDOMAIN)
+ if (is_initial_xendomain())
kcons_write_dom0(NULL, &x_char, 1);
else
while (x_char)
sz = wp - wc;
if (sz > (wbuf_size - WBUF_MASK(wc)))
sz = wbuf_size - WBUF_MASK(wc);
- if (xen_start_info->flags & SIF_INITDOMAIN) {
+ if (is_initial_xendomain()) {
kcons_write_dom0(NULL, &wbuf[WBUF_MASK(wc)], sz);
wc += sz;
} else {
return rc;
}
- if (xen_start_info->flags & SIF_INITDOMAIN) {
+ if (is_initial_xendomain()) {
xencons_priv_irq = bind_virq_to_irqhandler(
VIRQ_CONSOLE,
0,
.flags = XBWF_new_thread };
(void)register_xenbus_watch(&cpu_watch);
- if (!(xen_start_info->flags & SIF_INITDOMAIN)) {
+ if (!is_initial_xendomain()) {
for_each_cpu(i)
vcpu_hotplug(i);
printk(KERN_INFO "Brought up %ld CPUs\n",
#ifdef RTC_IRQ
/* If not domain 0, force our RTC driver to fail its probe. */
- if ((i == RTC_IRQ) &&
- !(xen_start_info->flags & SIF_INITDOMAIN))
+ if ((i == RTC_IRQ) && !is_initial_xendomain())
continue;
#endif
for (order = 0; order <= MAX_SKBUFF_ORDER; order++) {
size = PAGE_SIZE << order;
sprintf(name[order], "xen-skb-%lu", size);
- if (is_running_on_xen() &&
- (xen_start_info->flags & SIF_PRIVILEGED))
+ if (is_running_on_xen() && is_initial_xendomain())
skbuff_order_cachep[order] = kmem_cache_create(
name[order], size, size, 0,
skbuff_ctor, skbuff_dtor);
irq_ctx_init(cpu);
#ifdef CONFIG_HOTPLUG_CPU
- if (xen_start_info->flags & SIF_INITDOMAIN)
+ if (is_initial_xendomain())
cpu_set(cpu, cpu_present_map);
#else
cpu_set(cpu, cpu_present_map);
if (!is_running_on_xen())
return -ENODEV;
- if (xen_start_info->flags & SIF_INITDOMAIN)
+ if (is_initial_xendomain())
return 0;
IPRINTK("Initialising virtual ethernet driver.\n");
int len = 0;
*page = 0;
- if (xen_start_info->flags & SIF_INITDOMAIN)
+ if (is_initial_xendomain())
len = sprintf( page, "control_d\n" );
*eof = 1;
/* arch/xen/i386/kernel/setup.c */
extern start_info_t *xen_start_info;
+#define is_initial_xendomain() (xen_start_info->flags & SIF_INITDOMAIN)
/* arch/xen/kernel/evtchn.c */
/* Force a proper event-channel callback from Xen. */
extern shared_info_t *HYPERVISOR_shared_info;
extern start_info_t *xen_start_info;
+#define is_initial_xendomain() (xen_start_info->flags & SIF_INITDOMAIN)
+
void force_evtchn_callback(void);
/* Turn jiffies into Xen system time. XXX Implement me. */